package demo2.dao;

import java.util.Collection;

import org.hibernate.criterion.DetachedCriteria;

/**
 * 
 * 
 * 
 * <pre>
 * HISTORY
 * ****************************************************************************
 *  ID    DATE            PERSON            REASON
 *  1     2017年10月28日         01367604           Create
 * ****************************************************************************
 * </pre>
 * 
 * @author 01367604
 * @version 1.0
 */
public interface ICommonDao {

    <T> void insert(T obj);

    <T> void insertBatch(Collection<T> obj);

    <T> void delete(T obj);

    <T> void deleteBatch(Collection<T> obj);

    void deleteByParams(DetachedCriteria criteria);

    void deleteBatchByParams(DetachedCriteria criteria);

    <T> void update(T obj);

    <T> void updateBatch(Collection<T> obj);

    <T> T selectByParams(DetachedCriteria criteria);
}
